# D:/projects/debate_sys/debater_prompt.py
import json


class DebaterPrompt:
    def __init__(self, json_file):
        """
        初始化 DebaterPrompt 类，关联一个 JSON 文件。

        :param json_file: 关联的 JSON 文件路径
        """
        self.json_file = json_file
        self.load_prompts()

    def load_prompts(self):
        """
        从关联的 JSON 文件中加载提示词信息。
        """
        try:
            with open(self.json_file, 'r', encoding='utf-8') as f:
                data = json.load(f)
                self.prompts = data.get('prompts', [])
        except FileNotFoundError:
            print(f"文件 {self.json_file} 未找到。")
            self.prompts = []

    def get_prompt(self, side, name, stage="", position=""):
        """
        根据辩论方和位置获取对应的提示词。

        :param side: 辩论方，如 "正方" 或 "反方"
        :param position: 辩论队员位置，如 "一辩"、"二辩" 等
        :return: 对应的提示词，如果未找到则返回 None
        """
        for prompt in self.prompts:
            if position == "":
                if prompt.get('side') == side and name[0] in prompt.get('position'):
                    return prompt.get('prompt')
            else:
                if prompt.get('side') == side and prompt.get('stage') == stage and prompt.get('position') == position:
                    return prompt.get('prompt')
        return None
